h5集成到IOS后,文件下载功能无效问题!

您所在的位置:网站首页 手机文件预览插件下载失败 无法打开文件 h5集成到IOS后,文件下载功能无效问题!

h5集成到IOS后,文件下载功能无效问题!

2024-07-14 17:14:15| 来源: 网络整理| 查看: 265

公司新开发的app,测试妹纸反馈苹果版文件下载功能点击没任何反应。检查安卓版后,是正常的。于是检查了一下代码如下:

//下载文件 function downLoadFile(filePid,tableName) {     window.open("viewFile.aspx?filePid=" + filePid + "&tableName="+tableName); }

轻松定位问题(就一行代码,嘿嘿 - -!!)

经过调查发现:

问题原因:大部分现代的浏览器(Chrome/Firefox/IE 10+/Safari)都默认开启了阻止弹出窗口的策略,原因是window.open被广告商滥用,严重影响用户的使用。这个阻止弹出窗口的操作,并不是直接封杀window.open(),而是会根据用户的行为来判断这次window.open()是否属于流氓操作。

如果是由用户触发的动作所引起的 window.open 就不会被浏览器所阻止,比如写在 onclick 这些事件 handler 里的,但如果是代码自己触发的就会被阻止。

那么,我们可以知道,在Safari中无法open新窗口,原因是Safari的安全机制将其阻挡。

并不是所有地方都无法正常使用,在一些ajax或者jquery的getjson等回调代码中只要调用window.open都失效。原因是苹果的安全策略拦截。  

解决办法:

function download(src) {         if ((navigator.userAgent.indexOf('MSIE') >= 0) && (navigator.userAgent.indexOf('Opera') < 0)) {             var fileURL = window.open(src, "_blank", "height=0,width=0,toolbar=no,menubar=no,scrollbars=no,resizable=on,location=no,status=no");             fileURL.document.execCommand("SaveAs");             fileURL.window.close();             fileURL.close();         } else if (window.navigator.msSaveBlob) {             window.open(src);         } else {             var $a = document.createElement('a');             $a.setAttribute("href", src);             $a.setAttribute("download", "");             var evObj = document.createEvent('MouseEvents');             evObj.initMouseEvent('click', true, true, document.defaultView, 0, 0, 0, 0, 0, false, false, false, false, 0, null);             $a.dispatchEvent(evObj);         }     }

搞定!午饭时间到~

 



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭